.TH std::allocator_traits::allocate 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::allocator_traits::allocate \- std::allocator_traits::allocate

.SH Synopsis
   Defined in header <memory>
   static pointer allocate( Alloc& a, size_type n           \fI(since C++11)\fP
   );                                                       \fI(until C++20)\fP
   [[nodiscard]] static constexpr pointer allocate(         \fI(since C++20)\fP
   Alloc& a, size_type n );
   static pointer allocate( Alloc& a, size_type n,                        \fI(since C++11)\fP
                            const_void_pointer hint \fB(1)\fP                   \fI(until C++20)\fP
   );
   [[nodiscard]] static constexpr pointer allocate(     \fB(2)\fP
   Alloc& a, size_type n,                                                 \fI(since C++20)\fP

    const_void_pointer hint );

   Uses the allocator a to allocate n * sizeof(Alloc::value_type) bytes of
   uninitialized storage. An array of type Alloc::value_type[n] is created in the
   storage, but none of its elements are constructed.

   1) Calls a.allocate(n).
   2) Additionally passes memory locality hint hint. Calls a.allocate(n, hint) if
   possible. If not possible (e.g. a has no two-argument member function allocate),
   calls a.allocate(n).

.SH Parameters

   a    - allocator to use
   n    - the number of objects to allocate storage for
   hint - pointer to a nearby memory location

.SH Return value

   The pointer returned by the call to a.allocate(n).

.SH Notes

   Alloc::allocate was not required to create array object until P0593R6, which made
   using non-default allocator for std::vector and some other containers not
   well-defined according to a strict reading of the core language specification.

   After calling allocate and before construction of elements, pointer arithmetic of
   Alloc::value_type* is well-defined within the allocated array, but the behavior is
   undefined if elements are accessed.

.SH Example

    This section is incomplete
    Reason: no example

.SH See also

   allocate allocates uninitialized storage
            \fI(public member function of std::allocator<T>)\fP

.SH Category:
     * Todo no example
